#include "Niveau.hpp"

Niveau::Niveau(){} 

Niveau::Niveau(TableSymb* t){
  this->tablesSymb.push_back(t);
}

void Niveau::newTable(string tName, TableSymb* tParentPointer ){
  TableSymb* t = new TableSymb(tName, tParentPointer);
  this->tablesSymb.push_back(t);
}

TableSymb* Niveau::current(){ 
  return this->tablesSymb.back();
}

Symbole* Niveau::find(unsigned int id){
  return this->current()->getSymbole(id);
}

void Niveau::print(){
  //Afficher les tables des symboles du niveau
  
  for(std::vector<int>::size_type i = 0; i != this->tablesSymb.size(); i++) {
    this->tablesSymb[i]->Afficher();
  }
}
Niveau::~Niveau(){
   while(!this->tablesSymb.empty()) {
    this->tablesSymb.pop_back();
  }
}
